User loginNavigation |
Verifying Semantic Type Soundness of a Simple CompilerHaving been entirely too dismissive of one of Nick Benton's papers before, it seems only fitting that I should attempt expiation for my sins by discussing Formalizing and Verifying Semantic Type Soundness of a Simple Compiler:
I found this work striking for its strong defense of the utility of semantic, vs. syntactic, type soundness, and for its use of logical relations vs. unary predicates. I could swear that I recently read another paper making quite similar observations about semantic vs. syntactic type soundness. I'm not sure which paper it was, but regardless, there seems to me to be a great deal of overlap of insight and, to a lesser extent, approach, with A Certified Type-Preserving Compiler from Lambda Calculus to Assembly Language, and of course by extension to Leroy's work on formalizing big-step operational semantics, allocation, etc. Finally we have the very exciting news about progress on a mechanized metatheory for Standard ML, in Twelf. It's a very exciting time for mechanized metatheory! I'd love to get at least Nick Benton, Adam Chlipala, Xavier Leroy, and Tim Sweeney in a room for a few months so they could create the Next Mainstream Programming Language in Coq. Of course, we have Dr. Benton, Mr. Chlipala, and Mr. Sweeney right here on LtU... :-) Update: Mea culpa; the paper I had in mind was A Very Modal Model of a Modern, Major, General Type System. It would seem that Dr. Benton, Mr. Chlipala, and Dr. Appel and colleagues have arrived at quite similar perspectives on good approaches to mechanizing metatheory for very interesting programming language design efforts. By Paul Snively at 2007-04-04 04:45 | Implementation | Lambda Calculus | Type Theory | login or register to post comments | other blogs | 30362 reads
Towards a Mechanized Metatheory of Standard MLTowards a Mechanized Metatheory of Standard ML, Daniel K. Lee, Karl Crary, and Robert Harper.
The way that most programming languages end up working is by defining a smaller core language to which the constructions in the base language are translated. This means that you can prove the type-safety of a programming language by showing that the internal language is type safe, and that every type-correct program in the full language translates to a type-correct expression in the internal language. In this paper, the authors carried out the mechanization of a core language for SML. The next step is mechanizing the correctness of an elaborator from SML to this core language, and then full, no-foolin' SML will have a fully machine-checked correctness proof. By neelk at 2007-04-02 15:59 | Functional | Semantics | Type Theory | 1 comment | other blogs | 8730 reads
Interactivity considered harmfulAfter reading many posts lauding interactive tools as an integral part of the next big thing in software development, I figured I could offer this as counterpoint. The paper Magic Ink: Information Software and the Graphical Interface very eloquently argues that most software today, especially information-intensive software (think IDEs and many other GUI-based PL tools) are really badly designed. The most memorable section subtitle being interactivity considered harmlful. This is a real treasure trove of wonderful design ideas for interfaces for information-rich applications. This paper follows in the grand tradition of Edward Tufte, whose book The Visual Display of Quantitative Information was an incredible revelation for me. Somehow, I do think that some of the ideas behind Intentional Software fit in here -- although I make no claim as to whether the actual implementation of those ideas is an appropriate realization. By Jacques Carette at 2007-04-02 02:07 | Fun | General | Software Engineering | 11 comments | other blogs | 66017 reads
Mutable variables eliminated from .NETRedmond, WA: At an unusual press conference held this Sunday morning, Bill Taylor, Microsoft's General Manager of Platform Strategy, announced that after much research into the causes of security holes and instabilities, Microsoft will eliminate mutable variables from the .NET platform and its languages, including C# and VB.NET. "One of our top researchers found that mutable variables were the major root cause preventing us from achieving the great user experience we always strive to deliver," said Taylor. "Once we realized that, eliminating them from .NET was a no-brainer." Given that this announcement was made on a Sunday, reactions have been limited so far, but one prominent VB.NET developer commented that "Compared to the switch from VB6 to VB.NET, this ought to be a breeze." A C# developer was heard to say, "After anonymous delegates, monads shouldn't be a problem." To ensure wide penetration of this significant update, Microsoft will be issuing updated Windows CDs to all licensed customers, free of charge. The new CDs can be identified by the distinctive holographic "Haskell Inside" logo, featuring a holographic version of this portrait of Simon Peyton-Jones, grinning from ear to ear. LtU readers are encouraged to share any inside info they may have about this move! HaMLet-S and Successor MLAndreas Rossberg has updated HaMLet, a reference implementation of SML in SML, to support many of the suggestions for Successor ML (sML). The nice thing about implementing a PL in a high level PL (especially a metacircular implementation) is that it makes it easier to try out new language features. HaMLet-S is a spin-off devoted to Successor ML (www.successor-ml.org). It incorporates a number of preliminary proposals and is a testbed and sort of a personal vision of where SML could go. Version 1.3/S4 features the following:For the intrepid who want just a quick REPL to tinker with, #sml on the freenode irc has the smlbot set to use HaMLet-S. Tangible Functional ProgrammingA March 27, 2007 draft of a paper by Conal Elliot:
R6RS Ratification
The ratification process proposed is somewhat unusual (e.g., a no vote will need to include an explanation), but this may change due to the comments sent to the mailing list. I think many LtU readers should consider taking part in the vote, since as programming languages aficionados we cetainly have a stake in Scheme. Now is the chance to influence the procedural aspects of the ratification process. Paul Cohen has diedPaul Cohen has passed away. While not directly involved in programming languages, as far as I know, his seminal work in logic is certainly known and admired by many in the LtU community. No Ifs, Ands, or ButsNo Ifs, Ands, or Buts: Uncovering the Simplicity of Conditionals. Jonathan Edwards.
Many of us are skeptical of "visual programming", but also intrigued by the impact that powerful development tools might have on language design. This represents an interesting compromise. It addresses a pervasive problem in a novel way, and this is a paper with many interesting and accessible ideas. I look forward to seeing an implementation. Jonathan posted this on his blog, where there are already several comments. [I'm not sure where to put this... Seems like plain-old "Paradigms" is the best fit...] A Real-World Use of Lift, a Scala Web Application Framework
I promise that "Dave Pollak" is not a pseudonym for "Paul Snively." Update: I guess the self-deprecating humor hasn't worked, some 400+ reads later. Although the caveat that Dave offers about trying to objectively compare his own framework with Ruby on Rails is well-taken, I think that this nevertheless is an important marker in applying a very PLT-driven language and framework, Scala and lift, to a very realistic application, especially given that it's a rewrite from a currently-popular language and framework, Ruby and Rails. We admitted proponents of static typing and weird languages are constantly being asked for this sort of thing, and while it's doubtful that this adds anything to the PLT discussion per se—at least until we have a chance to dig into lift and see how Scala's design uniquely supports it—I thought people might find the Scala connection worth commenting on. By Paul Snively at 2007-03-22 16:06 | Object-Functional | Scala | Software Engineering | XML | 36 comments | other blogs | 132389 reads
|
Browse archives
Active forum topics |
Recent comments
2 weeks 3 days ago
2 weeks 4 days ago
2 weeks 6 days ago
2 weeks 6 days ago
3 weeks 4 days ago
3 weeks 4 days ago
3 weeks 4 days ago
6 weeks 4 days ago
7 weeks 3 days ago
7 weeks 3 days ago